Sync upstream v0.32.1 and Claude OAuth ownership fix#17
Sync upstream v0.32.1 and Claude OAuth ownership fix#17RajvardhanPatil07 wants to merge 129 commits into
Conversation
* Display extra-usage spend in menu bar * docs: update changelog for menu bar extra usage spend --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
…1078) * perf: background credits and dashboard fetch for regular refreshes Move refreshCreditsIfNeeded() and refreshOpenAIDashboardIfNeeded() into background tasks for non-forced refreshes. Add Task?-based coalescing guard for credits refresh to prevent unbounded stacking. Forced refreshes (manual) still await inline. Split from #1073. * fix: persist widget snapshots after background refreshes * fix: scope background codex refresh coalescing * fix: cancel scheduled codex credits before force refresh * test: split codex background refresh coalescing coverage * fix: stop cancelled dashboard refresh side effects * test: await background codex credits refresh --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* Display: add workday segmentation for weekly progress bars Fixes #1096 — Weekly Progress Bar configurable to segment in number of work days. - Add a Display preference for weekly progress work-day segmentation: Off / 4 days / 5 days / 7 days - Draw display-only day-boundary tick marks on weekly usage bars - Keep the default Off / nil so existing users see no UI change - Merge work-day markers with existing quota warning markers - No warning/alert behavior added; future warnings remain out of scope for this PR Validation: - swift test --filter MenuCardQuotaWarningMarkerTests - swift test --filter SettingsStoreCoverageTests - swift test --filter MenuCardModelTests - make check * Fix weekly workday marker observation and codex lanes * Linux: import FoundationNetworking for HTTPCookie * docs: update changelog for workday markers --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* Fix OpenCode Go local usage * Fix OpenCode Go monthly anchor * fix: keep OpenCode Go web usage authoritative --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* Fix Claude OAuth extra usage spend normalization * docs: update changelog for Claude spend normalization --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* Provider switcher: compact multi-row layout Fixes/follows up #1082. Summary: - Reduces vertical crowding in the merged provider switcher when many providers are enabled. - Adds compact row heights only for stacked multi-row layouts: - 3 rows: 40pt → 36pt - 4+ rows: 40pt → 34pt - Keeps single-row and two-row behavior unchanged. - Does not add NSScrollView. - Does not change hitTest, acceptsFirstMouse, mouseDown, or mouseUp. - Preserves provider ordering and click behavior. - UI-only: no provider fetching, billing, quota, parsing, ProviderCostSnapshot, or usage snapshot changes. Validation: - swift test --filter StatusMenuSwitcher - swift test --filter MenuCard - make check - git diff --check * Provider switcher: use safer compact row height * fix: cover compact provider switcher rows --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* fix: use Groq logo for Groq provider icon The Groq provider icon was a duplicate of the Grok (xAI) logo. Replace with the actual Groq 'Q' wordmark so the Settings page shows the correct brand. * test: cover distinct Groq provider icon --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* fix: retry transient OpenAI usage failures * docs: add OpenAI retry PR reference
Preserve status item identity during display-change recovery and refresh displaced live items in place, including same-count display remaps. Co-authored-by: Magicien <162632566+lederniermagicien@users.noreply.github.com>
Fix Claude CLI subscription-only /usage handling. Claude CLI 2.1 can return only the subscription notice without quota data. Classify that as a precise no-quota parse failure, stop PTY collection on the notice, and fall back to direct CLI usage when the PTY panel times out or fails to load. Proof: - claude --version => 2.1.148 (Claude Code) - direct claude /usage returns the subscription-only notice - CodexBarCLI usage --provider claude --source cli reports the subscription-specific error - swift test --filter 'StatusProbeTests.*subscription|TTYIntegrationTests.*subscription|ClaudeDirectUsageFallbackTests|SubprocessRunnerTests' - make check - autoreview --mode local clean Co-authored-by: Yuxin Qiao <104957188+Yuxin-Qiao@users.noreply.github.com>
Add zh-Hant localization resources, wire Traditional Chinese into the language picker, and credit the contributor in the changelog. Co-authored-by: IlyaL <ilyaliao324@gmail.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Allow the valid Codex CLI Gatekeeper diagnostic where spctl reports a signed command-line binary as "rejected (the code is valid but does not seem to be an app)" while keeping higher-risk blocked signals denied. Validated with focused PathBuilderTests, make check, local spctl reproduction against Codex CLI, and green GitHub checks. Co-authored-by: hhh2210 <hzy2210@gmail.com> Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Avoid overcounting forked Codex sessions when parent logs are unavailable. Includes maintainer changelog credit for @jskoiz.
Preserve legacy credentials when migrated config changes fail to persist, so a later retry can recover and clean up safely. Includes maintainer changelog credit for @RajvardhanPatil07.
Label Grok usage bars from the actual billing/reset window, including the maintainer fix for late-cycle windows. Includes maintainer changelog credit for @kiankyars.
* Improve Simplified Chinese localization for visible UI * Fix cost labels and localization lookup * Fix dynamic cost window labels and missing localization keys * Fix UsageFormatter localization resources and locale * Fix formatter locale fallback and pace resource keys * Polish remaining zh-Hans visible labels * Fix one-day and token KPI labels * docs: update changelog for zh-Hans localization --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
* fix(localization): improve Traditional Chinese wording - Refine zh-Hant strings for more natural Taiwan usage and terminology. - Replace provider terminology with 提供者 across Traditional Chinese copy. - Validate localized resources, placeholder parity, diff cleanliness, and high-risk term usage. * fix(localization): localize notification copy - Route quota warning, session depleted/restored, and login success notifications through localized strings. - Add English and Traditional Chinese notification keys with focused notification copy tests. - Validate with make check and focused notification/localization tests. * test(localization): stabilize English text assertions - Pin English-only assertions to the English localization override so local app language settings do not affect tests. - Adjust the OpenAI web refresh test wait order to avoid a full-suite scheduling timeout. - Verification: make check, swift test. * docs: update changelog for zh-Hant localization --------- Co-authored-by: Alan.Chang <alan.chang@everbot.com.tw> Co-authored-by: Peter Steinberger <steipete@gmail.com>
* Harden Release CLI manual dispatch [skip ci] * Harden release tag handling [skip ci] * Preserve manual artifact dispatches [skip ci] * docs: update changelog for release CLI hardening --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
Deduplicate OpenAI and Mistral API spend rendering through the shared cost-history dashboard and menu path. Co-authored-by: Zhongyue Lin <101193087+LeoLin990405@users.noreply.github.com>
Fix provider switcher keyboard shortcuts while the merged status menu is open. - handle Cmd-number and left/right provider switcher shortcuts without closing the menu - clean up the shortcut monitor through the shared menu close path - keep the monitor polling nonblocking in event-tracking mode Local proof: - swift test --filter 'StatusMenuSwitcherClickTests|StatusMenuSwitcherRefreshTests|StatusMenuPersistentRefreshTests|SubprocessRunnerTests' - swift test --filter StatusMenuSwitcherClickTests - make check - autoreview --mode branch --base origin/main Fixes #1156. Fixes #1144. Co-authored-by: Anirudh Venkatachalam <50367124+anirudhvee@users.noreply.github.com>
Add characterization coverage for provider metadata label invariants without changing runtime behavior. Local proof: - swift test --filter 'ProviderLabelMetadataCharacterizationTests|ProviderRegistryTests' - make check - autoreview --mode branch --base origin/main Refs #804. Co-authored-by: Yuxin Qiao <104957188+Yuxin-Qiao@users.noreply.github.com>
Security hardening for the release notarization path. Keeps notarization API key material and upload ZIPs inside a per-run private temporary directory, sets restrictive permissions, and cleans it up on exit. Final release artifact paths remain unchanged. Proof: - bash -n Scripts/sign-and-notarize.sh - static grep for removed predictable /tmp paths - stubbed release harness covering 0700 temp dir, 0600 API key, private notarization ZIP, cleanup, unchanged final artifacts - make check - autoreview clean - CI green
* fix: defer tracked menu background rebuilds * fix: preserve explicit hosted menu refreshes
Preserve Claude CLI OAuth refresh token ownership so CodexBar delegates refresh when Claude Code storage is present. Adds regression coverage for mixed cache/file/keychain ownership and the CodexBar-only fallback path. Co-authored-by: Rajvardhan Patil <243567420+RajvardhanPatil07@users.noreply.github.com>
|
Thanks for this, @RajvardhanPatil07! 🙏 Heads-up: our fork has already synced past this point.
#21 already includes the Claude OAuth refresh-token delegation (#1239) this PR adds, plus everything through v0.32.4:
Status of #21: Mac 0.32.4.1 signed + notarized (draft So this PR is superseded by #21 — recommend closing once you've verified. Thanks again for the contribution! 🙌 |
|
Closing as superseded by #21 — the full v0.29.1→v0.32.4 sync (Mac 0.32.4.1 / iOS 1.11.0 build 149) includes the Claude OAuth #1239 delegation this PR added, plus v0.32.2–v0.32.4 and the iOS 1.11.0 companion. Thanks again for the contribution, @RajvardhanPatil07! 🙏 |
Summary
MARKETING_VERSION=0.32.1.1,BUILD_NUMBER=76.1,MOBILE_VERSION=1.9.0, and leaveappcast.xmlunchanged until signed release artifacts are generated.Refs #11, #12, #13, #14, #15, #16.
Verification
0/1038 files require formattingNot completed locally
#Previewmacros withPreviewsMacrosmissing.xcodebuild -versionis unavailable for the same reason: active developer directory is/Library/Developer/CommandLineTools.sourcekitdInProc.framework, also consistent with the missing full Xcode/SourceKit environment.